#include<bits/stdc++.h>
using namespace std;
const int N=1e7+5,mod=998244353;
int n,k,fac[N],ifac[N],pw[N];
long long ans;
inline int ksm(int x,int y){
	int ans=1;
	for(;y;y>>=1,x=1ll*x*x%mod)
		if(y&1) ans=1ll*ans*x%mod;
	return ans;
} 
inline int C(int n,int m){return 1ll*fac[n]*ifac[m]%mod*ifac[n-m]%mod;}
inline void Mod(int &x){return (x>=mod)&&(x-=mod),void();}
int main(){
	freopen("length.in","r",stdin);
	freopen("length.out","w",stdout);
	scanf("%d%d",&n,&k);
	fac[0]=ifac[0]=pw[0]=1;
	for(int i=1;i<=n;++i) fac[i]=1ll*fac[i-1]*i%mod,pw[i]=1ll*pw[i-1]*n%mod;
	ifac[n]=ksm(fac[n],mod-2);
	for(int i=n-1;i;--i) ifac[i]=1ll*ifac[i+1]*(i+1)%mod;
	for(int i=1;i<=n;++i)
		ans+=1ll*C(n,i)*fac[i-1]%mod*ksm(i,k)%mod*pw[n-i]%mod;
	printf("%lld",ans%mod);
	return 0;
}

